This section is intended to introduce the reader to various aspects of art, which could be related to various aspects of the present invention that are described or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Erasure codes are implemented in network systems and storage devices as a tool for recovering data which has been lost, degraded or otherwise compromised. Erasure codes are typically adapted to generate and embed data redundancies within original data packets, thereby encoding the data packets in a prescribed manner. If such data packets become compromised, for example, as might occur during a disk failure, such redundancies could enable recovery of lost data or at least portions thereof. Various types of erasure codes exist including Reed-Solomon codes, RAID 5 and so forth. Unfortunately, encoding and/or decoding operations of such and/or other existing erasure codes are computationally demanding, typically rendering their implementation cumbersome in network systems, storage devices and the like.
Further, erasure codes have varying degrees of fault tolerance. The fault tolerance of an erasure code determines to what extent original data is recoverable from degraded and/or compromised encoded data. However, gauging the fault tolerance of an erasure code is a challenging undertaking to the extent that operation of the above-mentioned systems is done while not taking into account the fault tolerance information. Further, uncertainty in the fault tolerance of an erasure code can impact the manner in which data is allocated between storage devices and/or between multiple communication channels. The inability to determine the fault tolerance of an erasure code could hamper users' capacity to optimally store and/or allocate data in storage devices. This could also impact allocation and routing of data in communication network channels, inasmuch as those systems could not function as desired.